#[repr(usize)]
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
pub enum LevelFilter {
	Off,
	Error,
	Warn,
	Info,
	Debug,
	Trace,
}
pub trait Log: Sized + 'static {
	fn log(level: LevelFilter);
	fn log_off() {
		Self::log(LevelFilter::Off);
	}
	fn log_error() {
		Self::log(LevelFilter::Error);
	}
	fn log_warn() {
		Self::log(LevelFilter::Warn);
	}
	fn log_info() {
		Self::log(LevelFilter::Info);
	}
	fn log_debug() {
		Self::log(LevelFilter::Debug);
	}
	fn log_trace() {
		Self::log(LevelFilter::Trace);
	}
}
